package com.yida.gwj.expend.outside.mapper;

import com.yida.gwj.expend.outside.domain.dto.GetAttachmentInfoRequest;
import com.yida.gwj.expend.outside.domain.GwjMaintenanceFundsBusinessAttachment;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 上传材料图片地址Mapper接口
 *
 * @author lgp
 * @date 2023-03-21
 */
public interface GwjMaintenanceFundsBusinessAttachmentMapper {
    /**
     * 查询上传材料图片地址
     *
     * @param attachmentId 上传材料图片地址主键
     * @return 上传材料图片地址
     */
    public GwjMaintenanceFundsBusinessAttachment selectGwjMaintenanceFundsBusinessAttachmentByAttachmentId(Long attachmentId);

    /**
     * 查询上传材料图片地址列表
     *
     * @param gwjMaintenanceFundsBusinessAttachment 上传材料图片地址
     * @return 上传材料图片地址集合
     */
    public List<GwjMaintenanceFundsBusinessAttachment> selectGwjMaintenanceFundsBusinessAttachmentList(GwjMaintenanceFundsBusinessAttachment gwjMaintenanceFundsBusinessAttachment);

    /**
     * 新增上传材料图片地址
     *
     * @param gwjMaintenanceFundsBusinessAttachment 上传材料图片地址
     * @return 结果
     */
    public int insertGwjMaintenanceFundsBusinessAttachment(GwjMaintenanceFundsBusinessAttachment gwjMaintenanceFundsBusinessAttachment);

    /**
     * 修改上传材料图片地址
     *
     * @param gwjMaintenanceFundsBusinessAttachment 上传材料图片地址
     * @return 结果
     */
    public int updateGwjMaintenanceFundsBusinessAttachment(GwjMaintenanceFundsBusinessAttachment gwjMaintenanceFundsBusinessAttachment);

    /**
     * 删除上传材料图片地址
     *
     * @param attachmentId 上传材料图片地址主键
     * @return 结果
     */
    public int deleteGwjMaintenanceFundsBusinessAttachmentByAttachmentId(Long attachmentId);

    /**
     * 批量删除上传材料图片地址
     *
     * @param attachmentIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteGwjMaintenanceFundsBusinessAttachmentByAttachmentIds(Long[] attachmentIds);

    /**
     * 得到gwj维修基金业务附件列表
     *
     * @param getAttachmentInfoRequest gwj维修基金业务附件
     * @return {@link List}<{@link GwjMaintenanceFundsBusinessAttachment}>
     */
    List<GwjMaintenanceFundsBusinessAttachment> getGwjMaintenanceFundsBusinessAttachmentList(GetAttachmentInfoRequest getAttachmentInfoRequest);

    /**
     * 删除gwj维修基金业务附件服务器识别
     *
     * @param serverIdentification gwj维修基金业务附件
     * @return int
     */
    int deleteGwjMaintenanceFundsBusinessAttachmentByServerIdentification(String serverIdentification);


    /**
     * 批量插入附件
     *
     * @param maintenanceFundsBusinessAttachmentList 维修基金业务附件列表
     * @return int
     */
    int insertBatchAttachment(List<GwjMaintenanceFundsBusinessAttachment> maintenanceFundsBusinessAttachmentList);

    /**
     * 被服务器识别gwj维修基金业务附件
     *
     * @param maintenanceFundsBusinessAttachment 服务器标识
     * @return {@link GwjMaintenanceFundsBusinessAttachment}
     */
    GwjMaintenanceFundsBusinessAttachment getGwjMaintenanceFundsBusinessAttachment(GwjMaintenanceFundsBusinessAttachment maintenanceFundsBusinessAttachment);

    /**
     * 得到content2实体
     *
     * @param serverType           服务器类型
     * @param serverIdentification 服务器标识
     * @param fieldName            字段名
     * @return {@link Map}<{@link String}, {@link Object}>
     */
    @SuppressWarnings("MybatisXMapperMethodInspection")
    Map<String, ?> getContent2Entity(@Param("serverType") Integer serverType, @Param("serverIdentification") String serverIdentification, @Param("fieldName") String fieldName);


}
